package com.thumbnilatorDemo;

import net.coobird.thumbnailator.Thumbnails;
import java.io.File;
import java.io.IOException;

/**
 * 图片压缩工具类（推荐使用）
 * 支持：缩小分辨率 + 降低质量
 */
public class ImageCompressor {

    /**
     * 压缩图片
     *
     * @param inputPath  原图路径
     * @param outputPath 压缩后图片输出路径
     * @param maxWidth   目标最大宽度（会按比例缩放高度）
     * @param quality    压缩质量（0.1 ~ 1.0，数值越小体积越小）
     */
    public static void compressImage(String inputPath, String outputPath, int maxWidth, float quality) throws IOException {
        Thumbnails.of(inputPath)
                .width(maxWidth)          // 宽度缩放，高度自动等比缩放
                .outputQuality(quality)   // 压缩质量
                .outputFormat("jpg")      // 输出为 JPG 格式
                .toFile(new File(outputPath));

        System.out.println("压缩完成 → " + outputPath);
    }

    public static void main(String[] args) {
        try {
            // 示例：压缩到宽 800px，质量 0.4（40%）
            String input = "C:/images/test.jpg";
            String output = "C:/images/test_compressed.jpg";
            compressImage(input, output, 800, 0.4f);

            System.out.println("✅ 压缩完成！请查看输出文件对比大小。");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
